/* 
 * File:   IntegralTrapesioExtendido.cpp
 * Author: jorgeorm
 * 
 * Created on 13 de enero de 2012, 10:44 PM
 */

#include "IntegralTrapesioExtendido.h"
#include <cmath>

IntegralTrapesioExtendido::IntegralTrapesioExtendido(long double valReal) {
    this->valReal= valReal;
    this->valAprox=0;
}

long double IntegralTrapesioExtendido::getErrorReal(){
    long double output=0;
    output=this->valReal-valAprox;
    return output;
}

//IntegralTrapesioExtendido::IntegralTrapesioExtendido(const IntegralTrapesioExtendido& orig) {
//}

//long double IntegralTrapesioExtendido::integralFuncion(long double param){
//    long double output=0;
//    
//    output=-param*log(param)+param;
//    
//    return output;
//}

long double IntegralTrapesioExtendido::funcion(long double param){
    long double output=0;
    output=1.0/(log(param));
    return output;
}

long double IntegralTrapesioExtendido::reglaTrapesoide(int n_intervs, long double limInf, long double limSup){
    long double h=limSup-limInf;
    h= h/((long double)n_intervs);
    long double x=limInf;
    long double resp=0;
    resp=funcion(x);
    for(int i=1;i<n_intervs;i++)
    {
        x=x+h;
        resp+=2.0*funcion(x);
    }
    resp+=funcion(limSup);
    resp=(limSup-limInf)*resp/(2.0*n_intervs);
    this->valAprox=resp;
    return resp;
}

IntegralTrapesioExtendido::~IntegralTrapesioExtendido() {
}

